package com.cetool.autocms.util;

import cn.hutool.core.date.DatePattern;
import com.alibaba.excel.EasyExcelFactory;
import com.cetool.autocms.common.LocalDateTimeConverter;

import java.io.OutputStream;
import java.util.List;

/**
 * Excel工具类
 *
 * @author 端木超群
 * @date 2021/11/01
 */
public final class ExcelUtil {
    /**
     * 私有化构造器
     */
    private ExcelUtil() {
    }

    public static <T> void writeExcel(OutputStream outputStream, List<T> list, Class<T> clazz) {
        writeExcel(outputStream, list, clazz, DatePattern.NORM_DATE_PATTERN);
    }

    /**
     * 导出excel
     *
     * @author 端木超群
     * @date 2021/11/01
     * @param outputStream 输出数据流
     * @param list         excel数据
     * @param clazz        表头模型
     * @param dateFormat   时间格式
     */
    public static <T> void writeExcel(OutputStream outputStream, List<T> list, Class<T> clazz, String dateFormat) {
        EasyExcelFactory.write(outputStream, clazz).registerConverter(new LocalDateTimeConverter(dateFormat)).sheet()
                .doWrite(list);
    }
}
